#pragma once

#include "..\JudgeDll\Judge.h"
#include <vector>
#include <queue>

// DisplayWnd 对话框

class DisplayWnd : public CDialogEx
{
	DECLARE_DYNAMIC(DisplayWnd)

public:
	struct JudgeProp
	{
		Judge * JudgeClass;
		Judge::ComparePolicy Policy;
		bool ShowVerbose;
		int FileReserve;
	};

	DisplayWnd(JudgeProp prop, CWnd* pParent = nullptr);   // 标准构造函数
	virtual ~DisplayWnd();
	Judge * pJudge;
	Judge::ComparePolicy policy;

// 对话框数据
#ifdef AFX_DESIGN_TIME
	enum { IDD = IDD_DIALOG1 };
#endif

protected:
	//void beginJudge();
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

	CHARFORMAT2W def;
	CHARFORMAT2W title;
	CHARFORMAT2W error;
	CHARFORMAT2W wrnig;
	CHARFORMAT2W accpt;
	CHARFORMAT2W verbo;
	CHARFORMAT2W error_crit;

	std::vector <TDATA> fileVec;
	//bool isJudging;
	int ignoreFormat;

	DECLARE_MESSAGE_MAP()
public:
	bool ver;
	afx_msg void OnBnClickedButtonStart();
	CRichEditCtrl ResultDisplayBox;

	void Append(LPCTSTR, CHARFORMAT2W);
	CProgressCtrl ResProgress;
	afx_msg void OnBnClickedOk();
	afx_msg void OnBnClickedDetail();
};
